Digital signal processors (DSPs) are special-purpose processors utilized for digital processing. Signals are often converted from analog form to digital form, manipulated digitally, and then converted back to analog form for further processing. Digital signal processing algorithms typically require a large number of mathematical operations to be performed quickly and efficiently on a set of data. DSPs thus often incorporate specialized hardware to perform software operations that are often required for math-intensive processing applications, such as addition, multiplication, multiply-accumulate (MAC), and shift-accumulate.
A complex number is a number that can be expressed in the form a+bi, where a is the real part and b is the imaginary part of the complex number. The function angle(Z) computes the phase angle, in radians, for each element of a complex array Z. The computed angles are between ±π. Existing DSPs, however, do not provide specialized instructions to support complex angle functions. Increasingly, however, there is a need for complex angle operations in processors. For example, complex angle operations are needed for phase error estimation and frequency error estimation. CORDIC (Coordinate Rotation Digital Computer) hardware is often used to perform complex angle operations. Adding such specialized hardware blocks in a vector processor, however, can be costly, particularly if the vector processor uses high level SIMD (Single Instruction Multiple Data) parallelism (e.g., 128-way).
A need therefore exists for digital processors, such as vector processors, having an instruction set that efficiently supports a complex angle function.